Codebook updates for a linear system using superposition

ABSTRACT

Wireless network interfaces that are capable of transmitting and/or receiving beamformed radiofrequency (RF) signals may be assisted by the use of codebooks. Electronic devices with memory to store a database of codebooks may be used to increase the number of entries available for operation. The database of codebooks may employ environmental parameters to improve efficiency of the wireless network interface. Methods for calibration of electronic devices and/or adjustment and selection of codebooks based on the parameters are also described. The calibration may employ a testing chamber that measure powers at in a limited number of angles.

BACKGROUND

The present disclosure relates generally to wireless communicationsystems and, more specifically, to multi-antenna systems capable ofbeamforming.

This section is intended to introduce the reader to various aspects ofart that may be related to various aspects of the present disclosure,which are described and/or claimed below. This discussion is believed tobe helpful in providing the reader with background information tofacilitate a better understanding of the various aspects of the presentdisclosure. Accordingly, it should be understood that these statementsare to be read in this light, and not as admissions of prior art.

Various electrical devices use wireless communication systems forexchanging data and/or forming networks. For example, laptops, mobilephones, and other similar devices may have wireless network adaptorsthat can connect to cellular networks, wireless Ethernet networks,Bluetooth networks, and others. In some devices, the wirelesscommunication systems may employ multi-input multi-output (MIMO) antennasetups, which may include an array of antennas, to access a radiofrequency (RF) channel. In such systems, the transceiver and/or the RFhead circuitry that generates the RF signals to the antenna and/orreceives the RF signals from the antenna may be capable of providingsome directionality. For example, the programming of delays in the RFsignals may be used to introduce a phase delay between antennas of theantenna array, which may create an interference pattern that leads to apreferred direction of the RF wave from the antenna. The use of suchcapabilities may lead to an increase in signal strength andsignal-to-noise ratios in the communications channel and may allowreduced power consumption and/or increase effective bandwidths.

SUMMARY

A summary of certain embodiments disclosed herein is set forth below. Itshould be understood that these aspects are presented merely to providethe reader with a brief summary of these certain embodiments and thatthese aspects are not intended to limit the scope of this disclosure.Indeed, this disclosure may encompass a variety of aspects that may notbe set forth below.

Wireless systems may be capable of using beamforming techniques togenerate radiofrequency (RF) signals based on a preferential directionor orientation. These systems may employ programmable phased antennashaving delay elements or phase configuration elements that may assist ingenerating the RF wave with the preferential direction. The embodimentsdescribed herein relate to methods of using programmable delay elements(e.g., delay components, delay) in phased antenna array systems. Theprogramming of the delay components may be facilitated by the use ofcodebooks, data structures that may record relationships between theshape of an RF signal and a configuration of the phased antenna system.

In an embodiment, a method for assembly of a codebook database isdisclosed. The method generally relates to measuring the power of abeamformed RF signal formed using a pre-generated entry of a codebook,measuring the power of individual RF signals generated by the individualantenna elements using the same pre-generated entry to determine anupper bound for the power, and calculating a power difference betweenthe beamformed RF signal and the upper bound. The difference may bestored in a modified codebook (e.g., a grouped codebook). Modifiedcodebooks may be stored in the codebook database.

In another embodiment, an electronic device is disclosed. The electronicdevice may have a codebook database in its memory. The electronic devicemay also have RF circuitry with an antenna array and phase delaycircuitry that may be used to generate beamformed RF signals using theantenna array. The RF circuitry may also have an active codebook thatwas selected from the codebook database. The selection process may takeplace by a process that involves measuring the power of a beamformed RFsignal formed by an entry of a codebook, measuring the power ofindividual RF signals generated by the individual antenna elements usingthe same codebook entry to determine an upper bound for the power, andcalculating a power difference between the beamformed RF signal and theupper bound for the power. Based on the power difference, the activecodebook may be selected.

In another embodiment, an electronic device is disclosed. The electronicdevice may have a memory that stores a codebook database. The electronicdevice may also include wireless components of the wireless system thatare in communication with the antenna array (e.g., the transceiver, theRF head, the FEM). The available memory in these components may belimited, which may impose a limitation in the number of entriesavailable in the codebook. Moreover, certain parameters such as thecarrier frequency (i.e., the frequency of the RF carrier wave), theantenna power, or the antenna temperature, may benefit from alterationsin the entries of the codebook.

BRIEF DESCRIPTION OF THE DRAWINGS

Various aspects of this disclosure may be better understood upon readingthe following detailed description and upon reference to the drawings inwhich:

FIG. 1 is a schematic block diagram of an electronic device that maybenefit from the use of radio frequency (RF) communication system thatemploy codebooks for beamforming, in accordance with an embodiment;

FIG. 2 is a perspective view of a notebook computer representing anembodiment of the electronic device of FIG. 1;

FIG. 3 is a front view of a hand-held device representing anotherembodiment of the electronic device of FIG. 1;

FIG. 4 is a front view of another hand-held device representing anotherembodiment of the electronic device of FIG. 1;

FIG. 5 is a front view of a desktop computer representing anotherembodiment of the electronic device of FIG. 1;

FIG. 6 is a front view and side view of a wearable electronic devicerepresenting another embodiment of the electronic device of FIG. 1;

FIG. 7 is a schematic block diagram of an RF communication system thatmay be used in the electronic device of FIG. 1 and may access a codebookdatabase, in accordance with an embodiment;

FIG. 8 is a schematic block diagram that illustrates the use ofcodebooks to program phase delays in an RF communication system, inaccordance with an embodiment;

FIG. 9 is a schematic diagram that illustrates a relationship betweenthe programmed phase delays, illustrated in FIG. 8, and the beamformingprocess, in accordance with an embodiment;

FIG. 10 is a diagram of a codebook database, in accordance with anembodiment;

FIG. 11 is a flow chart of a method to load a codebook from a codebookdatabase, in accordance with an embodiment;

FIG. 12 is a schematic diagram of a fixed angle testing chamber that maybe used to perform codebook correction and/or selection, in accordancewith an embodiment;

FIG. 13 is a flow chart of a method to generate enhanced codebooks, inaccordance with an embodiment;

FIG. 14 is a flow chart of a method to generate grouped codebooks, inaccordance with an embodiment;

FIG. 15 is a flow chart of a method to select a grouped codebook for aparticular electronic device, in accordance with an embodiment; and

FIG. 16 is a flow chart of a method to adjust a pre-calculated codebook,in accordance with an embodiment.

DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS

One or more specific embodiments will be described below. In an effortto provide a concise description of these embodiments, not all featuresof an actual implementation are described in the specification. Itshould be appreciated that in the development of any such actualimplementation, as in any engineering or design project, numerousimplementation-specific decisions must be made to achieve thedevelopers' specific goals, such as compliance with system-related andbusiness-related constraints, which may vary from one implementation toanother. Moreover, it should be appreciated that such a developmenteffort might be complex and time consuming, but would nevertheless be aroutine undertaking of design, fabrication, and manufacture for those ofordinary skill having the benefit of this disclosure.

Many types of electronic devices may access wireless networks toexchange data with other electronic devices. These wireless networks,which may include cellular networks (e.g., 4G standards such as LongTerm Evolution or LTE, 5G standards such as New Radio or 5G NR) and/orconnectivity networks (e.g., IEEE 802.3 or WiFi, Bluetooth), may beimplemented by establishing radio frequency (RF) connections betweenelectronic devices. In order to establish the wireless RF connection,the electronic devices may include RF communication systems, which mayinclude transmission and reception circuitry coupled to an antenna. Thecircuitry may include a transceiver module, which may performencoding/decoding and modulation/demodulation tasks, as well asdigital-to-analog and analog-to-digital conversion. The transceivermodule may be coupled to the antenna by a front-end module (FEM) or RFhead, which may provide filtering and/or power amplificationcapabilities to the RF communication system. The RF head circuitry maybe coupled to an antenna array. The transceiver circuitry and/or the RFhead circuitry may generate RF signals that drive the antenna arrayand/or decode signals received by the antenna array.

Certain wireless network adaptors may be capable of beamforming throughthe antenna array system. Examples include multi-input multi-output(MIMO) network adaptors. In such system, the transceiver circuitryand/or the RF circuitry may insert delays in the signals that drive theantennas individually. These delays may introduce phase differencesbetween the RF signals emitted by each antenna. Due to the superpositionof the RF waves emitted by each antenna, the resulting wave pattern(i.e., the resulting RF wave generated by the superposition of all wavesof each antenna) may have a directionality. Thus, the careful selectionof delays, based on one or both of the carrier frequency (e.g., the bandof the carrier of the signal) and the relative location of the antennas,may allow an electronic device to optimize the signal in a preferentialdirection.

The embodiments described herein relate to methods to generate and/oruse programmable delay elements (e.g., delay components, phaseprogramming elements) in phased antenna array systems. In severaldevices, the programming of the delay components may be facilitated bythe use of codebooks. As discussed herein, the term “codebook” or“codebooks” may refer to data structures that may record relationshipsbetween a preferential direction and the phase delays to be programmedin the programmable delay circuitry.

In some embodiments, the codebook data structure may be a table and/or afunction that relates a direction with programmable delays. The codebookdata structure may be stored in the memory of components of the wirelesssystem that are in communication with the antenna array (e.g., thetransceiver, the RF head, the FEM). The available memory in thesecomponents may be limited, which may impose a limitation in the numberof entries available in the codebook or, more generally, in the size ofthe codebook. Moreover, certain parameters such as the carrier frequency(i.e., the frequency of the RF carrier wave), the antenna power, or theantenna temperature, may benefit from alterations in the entries of thecodebook.

As a result, the limitation in the number of entries in the codebook mayprevent the RF system from operating in an efficient manner. Forexample, a limitation in the number of preferential directions availablevia the available codebook may reduce the power saving and data rateimprovement due to RF beamforming. An absence of adjustments in thetransmission frequency may lead to incorrect phase delays in the phasedelay circuitry. The absence of adjustments due to temperature may leadto changes in the effective direction of the beamformed RF signal. Inorder to overcome the limitation in the number of codebook entries, theembodiments described herein are directed to systems and methods thatmay employ multiple codebooks for a device to overcome the memorylimitations, as described below. Embodiments may employ multiplecodebooks that may be located in a memory of the electronic device. Newcodebooks may be loaded to the RF head and/or the transceiver circuitrydynamically, during operation based on changes to conditions and/orchanges to the beamformed RF signal direction.

In some embodiments, the codebook is generated by a simulation processor a calculation that is based on a geometric disposition of an antenna.However, due to variations during the production process, suchsimulations or calculations may benefit from adjustments within arespective device. To that end, the present application also discusses amethod in which the device may correct a pre-loaded codebook duringdevice testing and/or during operation. Such system may mitigate anymismatches between the simulation or calibration used to generate thepre-loaded codebook, and the performance of the electronic device.

With the foregoing in mind, there are many suitable electronic devicesthat may employ codebooks to generate beamformed RF signals and maybenefit from the embodiments described herein. Turning first to FIG. 1,an electronic device 10 according to an embodiment of the presentdisclosure may include, among other things, one or more processor(s) 12,memory 14, nonvolatile storage 16, a display 18, input structures 22, aninput/output (I/O) interface 24, a network interface 26, and a powersource 28. The various functional blocks shown in FIG. 1 may includehardware elements (including circuitry), software elements (includingcomputer code stored on a computer-readable medium) or a combination ofboth hardware and software elements. It should be noted that FIG. 1 ismerely one example of a particular implementation and is intended toillustrate the types of components that may be present in electronicdevice 10.

By way of example, the electronic device 10 may represent, by blockdiagram, devices such as the notebook computer depicted in FIG. 2, thehandheld device depicted in FIG. 3, the handheld device depicted in FIG.4, the desktop computer depicted in FIG. 5, the wearable electronicdevice depicted in FIG. 6, or similar devices. It should be noted thatthe processor(s) 12 and other related items in FIG. 1 may be generallyreferred to herein as “data processing circuitry.” Such data processingcircuitry may be embodied wholly or in part as software, firmware,hardware, or any combination thereof. Furthermore, the data processingcircuitry may be a single contained processing module or may beincorporated wholly or partially within any of the other elements withinthe electronic device 10.

In the electronic device 10 of FIG. 1, the processor(s) 12 may beoperably coupled with the memory 14 and the nonvolatile storage 16 toperform various algorithms. Such programs or instructions executed bythe processor(s) 12 may be stored in any suitable article of manufacturethat includes one or more tangible, computer-readable media at leastcollectively storing the instructions or routines, such as the memory 14and the nonvolatile storage 16. The memory 14 and the nonvolatilestorage 16 may include any suitable articles of manufacture for storingdata and executable instructions, such as random-access memory,read-only memory, rewritable flash memory, hard drives, and opticaldiscs. In addition, programs (e.g., an operating system) encoded on sucha computer program product may also include instructions that may beexecuted by the processor(s) 12 to enable the electronic device 10 toprovide various functionalities.

In certain embodiments, the display 18 may be a liquid crystal display(LCD), which may allow users to view images generated on the electronicdevice 10. In some embodiments, the display 18 may include a touchscreen, which may allow users to interact with a user interface of theelectronic device 10. Furthermore, it should be appreciated that, insome embodiments, the display 18 may include one or more organic lightemitting diode (OLED) displays, or some combination of LCD panels andOLED panels.

The input structures 22 of the electronic device 10 may enable a user tointeract with the electronic device 10 (e.g., pressing a button toincrease or decrease a volume level). The I/O interface 24 may enableelectronic device 10 to interface with various other electronic devices,as may the network interface 26. The network interface 26 may include,for example, one or more interfaces for a personal area network (PAN),such as a Bluetooth network, for a local area network (LAN) or wirelesslocal area network (WLAN), such as an 802.11x Wi-Fi network, and/or fora wide area network (WAN), such as a 3rd generation (3G) cellularnetwork, universal mobile telecommunication system (UMTS), 4thgeneration (4G) cellular network, long term evolution (LTE) cellularnetwork, or long term evolution license assisted access (LTE-LAA)cellular network, 5th generation (5G) cellular network, and/or 5G NewRadio (5G NR) cellular network. The network interface 26 may alsoinclude one or more interfaces for, for example, broadband fixedwireless access networks (WiMAX), mobile broadband Wireless networks(mobile WiMAX), asynchronous digital subscriber lines (e.g., ADSL,VDSL), digital video broadcasting-terrestrial (DVB-T) and its extensionDVB Handheld (DVB-H), ultra-Wideband (UWB), alternating current (AC)power lines, and so forth. For example, network interfaces 26 mayinclude circuitry for accessing wireless networks and may include, byway of example, RF transceivers, front-end modules, and/or phasedantenna arrays capable of generating beamformed RF signals. In someembodiments, the network interfaces 26 may support MIMO features. Asfurther illustrated, the electronic device 10 may include a power source28. The power source 28 may include any suitable source of power, suchas a rechargeable lithium polymer (Li-poly) battery and/or analternating current (AC) power converter.

In certain embodiments, the electronic device 10 may take the form of acomputer, a portable electronic device, a wearable electronic device, orother type of electronic device. Such computers may include computersthat are generally portable (such as laptop, notebook, and tabletcomputers) as well as computers that are generally used in one place(such as conventional desktop computers, workstations, and/or servers).In certain embodiments, the electronic device 10 in the form of acomputer may be a model of a MacBook®, MacBook® Pro, MacBook Air®,iMac®, Mac® mini, or Mac Pro® available from Apple Inc. By way ofexample, the electronic device 10, taking the form of a notebookcomputer 10A, is illustrated in FIG. 2 in accordance with one embodimentof the present disclosure. The depicted computer 10A may include ahousing or enclosure 36, a display 18, input structures 22, and ports ofan I/O interface 24. In one embodiment, the input structures 22 (such asa keyboard and/or touchpad) may be used to interact with the computer10A, such as to start, control, or operate a GUI or applications runningon computer 10A. For example, a keyboard and/or touchpad may allow auser to navigate a user interface or application interface displayed ondisplay 18.

FIG. 3 depicts a front view of a handheld device 10B, which representsone embodiment of the electronic device 10. The handheld device 10B mayrepresent, for example, a portable phone, a media player, a personaldata organizer, a handheld game platform, or any combination of suchdevices. By way of example, the handheld device 10B may be a model of aniPod® or iPhone® available from Apple Inc. of Cupertino, Calif. Thehandheld device 10B may include an enclosure 36 to protect interiorcomponents from physical damage and to shield them from electromagneticinterference. The enclosure 36 may surround the display 18. The I/Ointerfaces 24 may open through the enclosure 36 and may include, forexample, an I/O port for a hardwired connection for charging and/orcontent manipulation using a standard connector and protocol, such asthe Lightning connector provided by Apple Inc., a universal service bus(USB), or other similar connector and protocol.

User input structures 22, in combination with the display 18, may allowa user to control the handheld device 10B. For example, the inputstructures 22 may activate or deactivate the handheld device 10B,navigate user interface to a home screen, a user-configurableapplication screen, and/or activate a voice-recognition feature of thehandheld device 10B. Other input structures 22 may provide volumecontrol, or may toggle between vibrate and ring modes. The inputstructures 22 may also include a microphone that may be used to obtain auser's voice for various voice-related features, and a speaker that mayenable audio playback and/or certain phone capabilities. The inputstructures 22 may also include a headphone input that may provide aconnection to external speakers and/or headphones.

FIG. 4 depicts a front view of another handheld device 10C, whichrepresents another embodiment of the electronic device 10. The handhelddevice 10C may represent, for example, a tablet computer, or one ofvarious portable computing devices. By way of example, the handhelddevice 10C may be a tablet-sized embodiment of the electronic device 10,which may be, for example, a model of an iPad® available from Apple Inc.of Cupertino, Calif.

Turning to FIG. 5, a computer 10D may represent another embodiment ofthe electronic device 10 of FIG. 1. The computer 10D may be anycomputer, such as a desktop computer, a server, or a notebook computer,but may also be a standalone media player or video gaming machine. Byway of example, the computer 10D may be an iMac®, a MacBook®, or othersimilar device by Apple Inc. It should be noted that the computer 10Dmay also represent a personal computer (PC) by another manufacturer. Asimilar enclosure 36 may be provided to protect and enclose internalcomponents of the computer 10D such as the display 18. In certainembodiments, a user of the computer 10D may interact with the computer10D using various peripheral input devices 22, such as the keyboard 22Aor mouse 22B, which may connect to the computer 10D.

Similarly, FIG. 6 depicts a wearable electronic device 10E representinganother embodiment of the electronic device 10 of FIG. 1 that may beconfigured to operate using the techniques described herein. By way ofexample, the wearable electronic device 10E, which may include awristband 43, may be an Apple Watch® by Apple, Inc. However, in otherembodiments, the wearable electronic device 10E may include any wearableelectronic device such as, for example, a wearable exercise monitoringdevice (e.g., pedometer, accelerometer, heart rate monitor), or otherdevice by another manufacturer. The display 18 of the wearableelectronic device 10E may include a touch screen display 18 (e.g., LCD,OLED display, active-matrix organic light emitting diode (AMOLED)display, and so forth), as well as input structures 22, which may allowusers to interact with a user interface of the wearable electronicdevice 10E.

The block diagram 100 of FIG. 7 illustrates a wireless network interface26 in an electronic device 10 that may employ dynamic codebooks asdiscussed herein. The electronic device 10 may include applicationcircuitry 102 (e.g., one or more processors 12 that may performinstructions loaded from a memory 14). The application circuitry 102 mayinclude a codebook database 104. As discussed herein, the codebookdatabase 104 may contain one more codebooks, which may be dynamicallyretrieved and loaded in the network interface 26 based on measuredparameters (e.g., environmental parameters) or configured parameters(e.g., frequency, nominal transmission power) of the electronic device10.

The network interface 26 may include a baseband circuit 106 that mayinclude baseband filters and other baseband processing functionality.The network interface 26 may also include a transceiver 108. Thetransceiver 108 may include one or more encoder/decoders 110. Theencoder/decoder 110 may, among other things, add a carrier signal to anoutgoing RF signal and/or generate a baseband signal from an incoming RFsignal. In some embodiments, the transceiver 108 may have processingcircuitry 112. The processing circuitry 112 may be, by way of example, ageneral-purpose processor, a dedicated logic, a microcontroller, orother suitable circuitry capable of executing code. The processingcircuitry 112 may, among other things, manage the codebooks loaded inthe network interface 26.

The wireless network interface 26 may also include RF head circuitry114. The RF head circuitry 114 may include dedicated memory for storageof an active codebook 116. As discussed above, the active codebook 116may store programming instructions for phase delay circuitry 118. The RFhead circuitry 114 may also include or be connected to an antenna array120, which may include antenna elements 122A, 122B, 122C, and 122D.

In the illustrated system, the processing circuitry 112 may access thecodebook database 104 via a codebook bus 124. The codebook bus 124 maybe tunneled through the baseband, and may be a dedicated bus forcodebooks or a shared data bus. The processing circuitry may alsointeract with the active codebook 116 via codebook bus 126. The codebookbus 126 may be a dedicated bus for codebooks or a shared data bus. Thecodebook buses 124 and 126 may provide a fast channel for transferenceof codebooks (e.g., loading codebooks from codebook database 104 to thememory within the RF head circuitry 114 that stores the currently activecodebook 116). In some embodiments, the channel between the codebookdatabase 104 and the storage or memory location designated for theactive codebook 116 may be a single connected bus that is managed by themicroprocessor 112.

As discussed above, the active codebook 116, the phase delay circuitry118 and the antenna array 120 may operate in coordination to generateand/or receive beamformed RF signals. For example, the processingcircuitry 112 may identify a preferred direction for the emittedbeamformed RF signal and, based on the preferred direction, program thephase delay circuitry 118 based on delay settings retrieved from theactive codebook 116. The programmed phase delay circuitry 118 willgenerate phase-delayed RF signals for each antenna element 122A, 122B,122C, and 122D. The diagrams in FIGS. 8 and 9 provide an illustration ofthe beamforming operation for a system with two antenna elements. Thediagram 130 of FIG. 8 illustrates a system with the transceiver 108, thephase delay circuitry 118 with delay elements 131A and 131B, two antennaelements 122A and 122B, and an active codebook 116. The active codebook116 may program the delay elements 131A and 131B using control signals132A and 132B, respectively. The delay elements may generate a phasedifference between the RF signals that arrive at antenna elements 122Aand 122B. In the illustrated system, the phase delay circuitry may alsoinclude amplifiers 134A and 134B and, in some embodiments, theamplifiers may also be controlled in the process of beamforming.

The diagram 140 in FIG. 9 provides an illustration of a beamformedwavefront, which may be used to calculate phase delays. In the diagram140, antenna elements 122A and 122B generate an RF signal that may havea preferred direction with a wavefront line 144 (e.g., the maximumamplitude of the RF signal may be in a direction perpendicular towavefront line 144). The wavefront line 144 may form an angle 142 with aline 147, in which the antenna elements 122A and 122B are located. Inorder to obtain the wavefront line 144, the antenna elements 122A and122B may radiate individual RF signals with a phase difference, whichmay be generated in the phase delay circuitry 118, as discussed above.The relationship between the time delay imposed in the phase delaycircuitry 118 and the wavefront line 144 may be determined as follows.In view of the angle 142 and a distance 148 that separates the antennaelements 122A and 122B, a delay distance 146 may be determined. Based onthe delay distance 146 and the frequency of the RF frequency irradiatedby the antenna elements 122A and 122B, the delay may be calculated.

As discussed above, the space for the active codebook 116 in the networkdevice 26 of FIG. 7 may be limited, due to limitations in the space(e.g., floorplan) of the RF head circuitry 114 and/or in the transceiver108. The limitations in the space may lead to a limited number ofentries available in the active codebook 116. Each codebook entry (e.g.,set of delays) may be associated with a preferential direction (e.g.,azimuth and elevation angles), the transmission frequency of the RFsignal (e.g., frequencies in 450 MHz band, 800 MHz band, 850 MHz band,900 MHz band, 1.8 GHz band, 1.9 GHz band, 2.4 GHz band, 3.65 GHz band,4.9 GHz band, 5 GHz band, millimeter wave (mmWave) frequencies such asfrequencies in 36-40 GHz band, 71-76 GHz band, 81-86 GHz band, and 92-95GHz band), the temperature of the antenna elements, the power levels ofthe transceiver circuitry, the mode of operation of the transceivercircuitry (e.g., transmitting, receiving), and other parameters. Inorder to overcome the memory limitation in the active codebook 116, acodebook from the codebook database 104 having different entries thanthe active codebook 116 may be loaded into the RF head circuitry 114 toreplace the active codebook 116. In the illustrated embodiment, theprocessing circuitry 112 of the transceiver 108 may perform the dynamicreplacement.

An example of a codebook database 104 is illustrated in FIG. 10. Thecodebook database 104 may include multiple codebooks, such as codebooks156A, 156B, 156C, and 156D. Each codebook 156A-D may include entry keys160, which in the example illustrated in FIG. 10 include azimuth angleand elevation angle. The codebook 156A-D may also include the delayvalues 162. The number of delay values may be associated with the numberof antennas elements (e.g., antenna elements 122A-D) in the antennaarray (e.g., antenna array 120) such that each antenna element has anassociated delay for a given entry in a respective codebook 156. Forexample, the codebooks 156A-D include 4 delay values per entry. Acodebook database 104 may index each codebook based on one or moreparameters. In the illustrated codebook database 104, the system mayemploy as parameters a temperature parameter 158A, an RF frequencyparameter 158B, and a power level parameter 158C. The parameters may beused by the network device 26 (e.g., the processing circuitry 112) toretrieve the codebook for active replacement.

The use of a codebook database 104 increases substantially the availablespace that can be used to store codebooks. In some embodiments, thememory available for the active codebook 116 may be small (e.g., lessthan 1 Kilobyte) and the memory available for the codebook database maybe up to the entire memory in the electronic device (e.g., memory 14 ofan electronic device 10, which may be several Terabytes, severalGigabytes, several Megabytes, several Kilobytes etc.).

It should also be noted that the use of a codebook database 104 mayallow for quick updates of the active codebook 116. Changes to memory inthe RF head circuitry 114 may cause a pause in the RF transmissionsand/or receptions. As a result, an update of the active codebook 116 inwhich phase delays entries are calculated may lead to a substantial idletime. The use of pre-calculated codebooks in a codebook database 104, asdiscussed herein, may allow the use of a large number of codebookentries without creating significant idle times.

While the example discussed in FIGS. 7 and 10 relate to an antenna arraywith four elements that may be disposed in a single line, which resultsin a planar beamforming system), the methods and systems describedherein may be adapted to 3-dimensional beamforming systems (e.g., arrayof M×N antenna elements). Moreover, while the codebook database 104illustrated in FIG. 10 relates to a database indexed by a temperatureparameter 158A, RF frequency parameter 158B, and power level 158C, otherparameters including directions (e.g., azimuth angle, elevation angle)may also be used. Furthermore, while the codebooks 156A-D illustrated inFIG. 10 includes azimuth and elevation angles as the only entry keys160, other quantities, such as temperature, RF frequency, and powerlevel may also be added to the codebook and used as key. It should alsobe noted that the codebook database 104 may refer to a managed database(e.g., a SQL database, a non-SQL database), an indexed file system, orany other suitable data structure capable of storing codebooks in anindexed or otherwise searchable manner.

With the foregoing in mind, FIG. 11 illustrates a flowchart for a method180 to load codebooks dynamically. In a process 182, a parameter may bemeasured and received by a controller in the wireless system (e.g.,processing circuitry 112 of the network device of FIG. 7). Duringoperation of the electronic device, sensors may monitor or determine achange in parameter. Examples of sensors include temperature sensors(e.g., thermistors) or movement sensors. Information related to someparameters may be provided by controller circuitry. For example, anencoder in a transceiver (e.g. encoder/decoder 110 in transceiver 108)may provide data indicating the power level and/or the carrier frequencyof the RF signal. In this step, the controller may determine whetherthere was substantial change in the parameter and, based on thatdetermination, determine whether the active codebook (e.g., activecodebook 116) should be replaced by a codebook from the codebookdatabase (e.g., codebook database 104). In a process 184, the controllermay request an appropriate codebook based on the measured parameters. Ina process 186, the retrieved codebook may be loaded and used to programphase delay circuitry to improve the process of beamforming.

As discussed above, an electronic device may have multiple codebooks ina codebook database 104 that may be dynamically loaded to the front-endcircuitry of a wireless network adaptor 26 (e.g., transceiver 108, RFhead circuitry 114). Furthermore, as discussed above, certain codebooksmay be more suitable to be employed in different conditions. Forexample, an electronic device may have one codebook for a set of rangesof temperature, RF signal frequencies, power levels, and/or beamformingangles. The codebooks in the codebook database 104 may be calculatedusing simulations and/or measurements based on the design of theprocess. Simulations may include numerical simulations and/or evaluationof analytical formulas. Measurements may be made in an appropriatesetting that in which the shape of beamformed RF emissions from anelectronic device under testing (DUT) can be measured under differentconditions (e.g., temperature, RF power, RF frequency). The shape of thebeamformed RF emission may take place by measuring the power in multipledirections and charting the measured powers associated with eachdirection. The generated codebook database 104 may be loaded into thememory of the electronic device.

The fabrication process may create devices with slight deviations in thedimensions and/or positions of the antenna elements. As a result, thepreloaded codebook database 104 may provide different results from theones obtained in simulation or measurement. Moreover, the expense andthe time for conventional testing of the beamformed RF emissions for allfabricated electronic devices may be significantly high and, in somesituations, prohibitive. A streamlined process for adjusting thecodebooks in the codebook database 104, which employs a simplifiedcalibration chamber illustrated in FIG. 12, is described below in FIGS.13, 14, 15, and 16.

In general, the described process may take place by generating adatabase of enhanced and/or grouped codebooks from a sampling of testdevices. These enhanced and/or grouped codebooks may includecharacteristics that may provide a “signature” characteristic to acodebook. A “signature” characteristics may be a characteristic thatindicates that a device may be similar to another device. As an example,the “signature” characteristic may be a difference between an effectivepower and an upper-bound power measured at a fixed angle, as detailedbelow. That is, two devices that have similar a “signature”characteristic may successfully share a common codebook. Therefore,following a fabrication, a streamlined calibration process that measuresthe “signature” characteristic may be used to select one or moreappropriate codebooks from the codebook database for that device.

The diagram of FIG. 12 illustrates a testing chamber 200 for performingstreamlined calibration during and/or following manufacturing. Thetesting chamber 200 may have a measurement antenna 202, which may beconnected to a measurement instrument. The measurement antenna 202 maymeasure the RF power from a device in a DUT fixture 204. In theillustrated example, the DUT fixture 204 holds an electrical device,which is represented schematically and which has a 4×4 array of antennaelements 122. In some embodiments, the testing chamber 200 may be fixed,and the measurement antenna 202 measures the RF power at a fixeddirection (e.g., azimuth at 0 degrees, elevation at 0 degrees). Thetesting chamber 200 may also have sensors and/or other circuitry torecord testing parameters such as the temperature, humidity, emittedpower, etc. The testing chamber 200 may be used to measure theperformance of codebook entries at the fixed direction, with the resultsbeing used to compare with previously measured codebook entries asdiscussed above.

The method 220 of FIG. 13 illustrates steps that may be used to enrich acodebook database 104 in a manner that facilitates the use of thetesting chamber 200 during quality fabrication. The method 220 may beused to associate a particular pre-calculated codebook 222 to obtain anenhanced codebook 223. The method 220 may be employed with a limitednumber of test devices in a conventional test chamber, which may becapable of measuring the shape of the beamformed RF signal (i.e.,measuring the power of the RF signal in multiple directions). In method220, each entry of a particular codebook may be tested in an iteration,as illustrated by process block 224. For each codebook entry, parametersmay be set and/or measured in process block 226. Examples of parametersinclude the RF frequency, the RF power transmission (e.g., nominal RFsignal power), and/or the temperature. The maximum power generated mayalso be measured, in process block 228. The angle of the beamformed RFsignal may also be measured in a process block 230. All the entriesmeasured and/or tested may be incorporated into the entry in processblock 232. Note that the angle measured in process block 230 may be usedto update angle entries of the initial (e.g., pre-calculated) codebook222. Other entries (e.g., temperature, frequency, nominal transmissionpower) may be added as additional data (e.g., new columns) in theenhanced codebook 223. The method 220 may proceed until all codebookentries are tested, as illustrated by decision block 234.

Tables 1 and 2, described below, illustrate an example of apre-calculated codebook 222 and an enhanced codebook 223.

TABLE 1 Pre-calculated codebook AZ EL Φ₁ Φ₂ Φ₃ Φ₄ −90 −90 w₁ x₁ y₁ z₁−70 −90 w₂ x₂ y₂ z₂ . . . . . . . . . . . . . . . . . . −90 −70 w_(k)x_(k) y_(k) z_(k) . . . . . . . . . . . . . . . . . .  0  0 w_(i) x_(i)y_(i) z_(i) . . . . . . . . . . . . . . . . . . +90 +90 w_(n) x_(n)y_(n) z_(n)

TABLE 2 Enhanced codebook AZ EL Φ₁ Φ₂ Φ₃ Φ₄ Power Temperature AZ₁ EL₁ w₁x₁ y₁ z₁ P_(S1) T₁ AZ₂ EL₂ w₂ x₂ y₂ z₂ P_(S2) T₂ . . . . . . . . . . . .. . . . . . . . . . . . AZ_(j) = 0 EL_(j) = 0 w_(j) x_(j) y_(j) z_(j)P_(Sj) T_(j) . . . . . . . . . . . . . . . . . . . . . . . . AZ_(n)EL_(n) w_(n) x_(n) y_(n) z_(n) P_(Sn) T_(n)

Following the measurement described in method 220, the enhancedcodebooks 223 may be tested in a method 240, of FIG. 14, to calculate adifference value, which may be used as “signature” for a device undertest, as detailed below. The present method will be described employingthe Table 2 as an example of an enhanced codebook. In method 240, eachentry of the enhanced codebook may be tested, as illustrated by processblock 244.

In a process block 246, each antenna element may be individually testedby emitting individual RF signals and the associated power at a fixeddirection may be measured. The fixed direction may be the maximum powerdirection or a particular direction that may be convenient forcalibration (e.g., a direction associated with test chamber 200 of FIG.12). For example, when testing the first entry of the enhanced codebook223 of Table 1, the first antenna element may be programmed with a phasedelay w₁ and the power at AZ₁ and EL₁ may be measured as P_(1, 1).Similarly, the second antenna element may be programmed with a phasedelay x₁ and the power at AZ₁ and EL₁ may be measured as P_(2, 1); thethird antenna element may be programmed with a phase delay y₁ and thepower at AZ₁ and EL₁ may be measured as P_(3, 1), and the fourth antennaelement may be programmed with a phase delay z₁ and the power at AZ₁ andEL₁ may be measured as P_(4, 1). As described herein, P_(i, j) may referto the power measured in process block 246 associated with the i-thantenna element and the j-th codebook entry. An upper bound power P_(Uk)may be calculated as P_(Uk) Σ_(i) P_(i,k).

In process block 248, a power difference between an upper bound powerassociated with the codebook entry (measured in process block 246), andthe measured power (measured in process block 228 of method 220, andstored in enhanced codebook 223) may be calculated asΔ_(k)=P_(Uk)−P_(Sk). The difference may be added to the codebook entryin a process block 250, to obtain a grouped codebook 252. An example ofa grouped codebook is illustrated in Table 3.

TABLE 3 Grouped codebook Δ AZ EL Φ₁ Φ₂ Φ₃ Φ₄ Power Temperature Δ₁ AZ₁EL₁ w₁ x₁ y₁ z₁ P_(S1) T₁ Δ₂ AZ₂ EL₂ w₂ x₂ y₂ z₂ P_(S2) T₂ . . . . . . .. . . . . . . . . . . . . . . . . Δ_(j) AZ_(j) = 0 EL_(j) = 0 w_(j)x_(j) y_(j) z_(j) P_(Sj) T_(j) . . . . . . . . . . . . . . . . . . . . .. . . Δ_(n) AZ_(n) EL_(n) w_(n) x_(n) y_(n) z_(n) P_(Sn) T_(n)

The testing of the device may present a set of differences (e.g., Δ={Δ₁,Δ₂, . . . , Δ_(n)}). As some devices may have similar set of differencesΔ, the set of differences may be used as a signature to identify agrouped codebook 252 for a particular device during a streamlinedcalibration process during or after production. To that end, all groupedcodebooks 252 that were identified may be loaded in the codebookdatabase 104 that is loaded in the memory of the electronic device. Themethod 260 of FIG. 15 may be used in the factory setting to identifywhich grouped codebook 252 should be employed by the device. The method260 may be suitable to be used in the test chamber 200 with a fixedangle measurement, and illustrated in FIG. 12.

In a process block 262, a particular codebook entry may be loaded. Thecodebook entry loaded may be associated with the fixed direction of thetest chamber (e.g., test chamber 200). In a process block 264, eachantenna element may be independently tested, in a process that may besimilar to the process block 246 in method 240. The sum of the powers ofthe RF signals from each antenna element may be the upper bound powerP_(U, test), as discussed above. In a process block 266, the power ofthe RF signals from all antennas P_(S, test) may be calculated in aprocess that may be similar to the process block 228 in method 220. In aprocess block 268, a difference Δ_(test) may be calculated, in a mannersimilar to that of process block 248. That value of P_(U, test),P_(S, test), or Δ_(test) may be used to identify group membership forgrouped codebook 252 in a process 270. In some embodiments, that maytake place by identifying which group in the codebook database is mostsimilar to the grouped codebook 252 based on the measurements. In someembodiments of the method 260, the chosen grouped codebook 252 may bechecked by verifying the equation P_(Sj)=P_(U,test)+Δ_(j)+τ, in which τmay be a tolerance margin. The application of method 260 may, thus,allow a streamlined process for identification and adjustment ofsuitable codebooks using a test chamber with fixed angle of observation.

In some embodiments, the identification of a suitable codebook may beperformed with a method 280, illustrated in FIG. 16. Method 280 may beemployed in place of method 260, or performed in situations in whichmethod 260 is not capable of identifying an appropriate grouped codebook252. The method 260 may be suitable to be used in the test chamber 200with a fixed angle measurement, and illustrated in FIG. 12. In processblock 282, the DUT may be loaded to the test chamber 200. An iterativeprocess that tests each element may be employed, as illustrated byprocess block 284. In the iterative process, each element may besequentially activated, in process block 286. The sequential activationmay be one in which previously tested antenna elements may remainactivated. A phase scan may be performed in process block 288, todetermine a delay value for the antenna element that provides themaximum power at the fixed angle. At the end of the iteration, a set ofdelay values that maximize the power at the fixed angle may beidentified.

An example of an iteration that involves process blocks 284, 286, and288 is provided as follows. In a first iteration, the first antennaelement is activated and a phase value ϕ₁ may be determined with a phasescan. In the second iteration, the first element is programmed to usethe phase value ϕ₁, and the second element is activated. The phase scanof the phase delay associated with the second element may return thephase value ϕ₂. Subsequent steps may provide a sequence of phase valuesϕ₁, ϕ₂, . . . , ϕn. A codebook from the codebook database 104 that has asequence that approximates ϕ₁, ϕ₂, . . . , ϕ_(n) associated with thefixed angle may be chosen in process block 289. In order to determinewhich sequence approximates the phase values, a metric (e.g., Euclidiandifference, Manhattan difference, etc.) may be used.

In process block 290, the codebook may be adjusted by calculating anarray of errors in the phase setting. The errors may be determined asthe difference e=(e₁, e₂, . . . , e_(n))=(x₁, x₂, . . . , x_(n))−(ϕ₁,ϕ₂, . . . ϕ_(n)) between the codebook entry and the phase valuesmeasured in method 280. In a process block 294, the codebook may beupdated based on the errors measured in process block 290. Thiscorrection may be an addition of the difference vector e to all entriesin the codebook. An example of process blocks 290 and 294 are describedas follows. Assume an implementation of method 280 in which ϕ₁, ϕ₂, . .. , ϕ₄ are the phase values identified for a device with 4 antennaelements in a chamber with AZ=0 and EL=0. Furthermore, let the codebookidentified in process block 289 be the codebook represented in Table 1above, in which w_(i), x_(i), y_(i), and z_(i) are the delay valuesassociated with AZ=0 and EL=0. The errors may be calculated as e₁=w₁−ϕ₁,e₂=x₁−ϕ₂, e₃=y₁−ϕ₃, and e4=z₁−ϕ₄ in process block 290. In process block294, the error values may be used to create a corrected codebookillustrated in Table 4.

TABLE 4 Corrected codebook AZ EL Φ₁ Φ₂ Φ₃ Φ₄ −90 −90 w₁ + e₁ x₁ + e₂y₁ + e₃ z₁ + e₄ −70 −90 w₂ + e₁ x₂ + e₂ y₂ + e₃ z₂ + e₄ . . . . . . . .. . . . . . . . . . −90 −70 w_(k) + e₁ x_(k) + e₂ y_(k) + e₃ z_(k) + e₄. . . . . . . . . . . . . . . . . .  0  0 w_(i) + e₁ x_(i) + e₂ y_(i) +e₃ z_(i) + e₄ . . . . . . . . . . . . . . . . . .  90  0 w_(n) + e₁x_(n) + e₂ y_(n) + e₃ z_(n) + e₄

The present application make reference to certain processes that aredescribed in the context of production, quality control, and/or testingof electronic devices and may be used to correct and/or identifycodebooks. These processes may also be performed during regular usage ofthe electronic device. For example, an end user may perform are-calibration of codebooks in the codebook database 104 using areference antenna, which may be a fixed cellular antenna. Moreover,while the above description of the methods is made in the context of RFbeamforming for transmission, the methods may be adapted to perform RFbeamforming during reception. In some embodiments, the RF system mayhave different codebooks for transmitting RF signals and receivingsignals. The mode of operation (e.g., transmitting mode or receivingmode) may be a parameter or an entry key.

In the above descriptions, certain methods employ mathematicalcalculations. The mathematical calculations may be performed numericallyin the electronic devices and, as such, may be subject to quantizationerrors. As such, implementations of the above methods may employtolerance margins to prevent quantization errors from generatedunexpected results.

The specific embodiments described above have been shown by way ofexample, and it should be understood that these embodiments may besusceptible to various modifications and alternative forms. It should befurther understood that the claims are not intended to be limited to theparticular forms disclosed, but rather to cover all modifications,equivalents, and alternatives falling within the spirit and scope ofthis disclosure.

The techniques presented and claimed herein are referenced and appliedto material objects and concrete examples of a practical nature thatdemonstrably improve the present technical field and, as such, are notabstract, intangible or purely theoretical. Further, if any claimsappended to the end of this specification contain one or more elementsdesignated as “means for [perform]ing [a function] . . . ” or “step for[perform]ing [a function] . . . ”, it is intended that such elements areto be interpreted under 35 U.S.C. 112(f). However, for any claimscontaining elements designated in any other manner, it is intended thatsuch elements are not to be interpreted under 35 U.S.C. 112(f).

What is claimed is:
 1. A method to generate a codebook database,comprising: generating a set of power differences for a first codebookby: programming a first entry of the first codebook in a phase delaycircuitry of radiofrequency (RF) circuitry of a device under test,wherein the RF circuitry comprises a plurality of antenna elements;transmitting a beamformed RF signal using the plurality of antennaelements and measuring a first power at a first direction; transmittinga plurality of individual RF signals and measuring a plurality ofindividual RF signal powers at the first direction, wherein eachindividual RF signal is generated by a single antenna element of theplurality of antenna elements and each RF signal power is associatedwith a respective individual RF signal; calculating a first upper boundby adding the plurality of individual RF signal powers; and determininga first power difference between the first power and the first upperbound, wherein the set of power differences comprises the first powerdifference; generating a first grouped codebook that comprises the firstcodebook and the set of power differences, wherein the first groupedcodebook is indexed based on a temperature parameter associated with thebeamformed RF signal; determining a membership of the first groupedcodebook in a group of grouped codebooks of the codebook database; andloading the codebook database on a plurality of electronic devicessimilar to the device under test.
 2. The method of claim 1, comprising:programming a first entry of the first grouped codebook in a firstelectronic device of the plurality of electronic devices; transmitting abeamformed calibration RF signal using a second plurality of antennaelements of the first electronic device and measuring a firstcalibration power at a second direction; transmitting a plurality ofindividual calibration RF signals and measuring a plurality ofindividual calibration RF signal powers at the second direction, whereineach individual calibration RF signal is generated by a single antennaelement of the second plurality of antenna elements; calculating acalibration upper bound by adding the plurality of individualcalibration RF signal powers; determining a calibration power differencebetween the first calibration power and the calibration upper bound; andselecting a grouped codebook from the codebook database based, at leastin part, on the calibration power difference.
 3. The method of claim 2,wherein the first direction and the second direction are similar.
 4. Themethod of claim 3, wherein measuring the first calibration power isperformed in a test chamber that comprises a fixed measurement directionand the second direction comprises the fixed measurement direction. 5.The method of claim 1, comprising measuring a temperature duringtransmission of the beamformed RF signal and adding the temperature tothe first grouped codebook as an index value based on the temperatureparameter.
 6. The method of claim 1, comprising selecting a carrierfrequency parameter for the beamformed RF signal and adding the carrierfrequency parameter to the first grouped codebook as an index value. 7.The method of claim 1, comprising selecting a transmission powerparameter for the beamformed RF signal and adding the transmission powerparameter to the first grouped codebook as an index value.
 8. The methodof claim 1, comprising: transmitting the beamformed RF signal using theplurality of antenna elements; measuring a plurality ofdirection-associated powers at a plurality of directions; anddetermining the first direction that is associated with a maximumdirection-associated power from the plurality of direction-associatedpowers.
 9. The method of claim 1, wherein the device under testcomprises a laptop, a mobile phone, a tablet, a watch, or anycombination thereof.
 10. An electronic device comprising: memorycircuitry comprising a codebook database comprising a plurality ofcodebooks, wherein each codebook of the plurality of codebooks isassociated with a respective power difference corresponding to a groupof similar electronic devices, wherein each codebook of the plurality ofcodebooks is indexed based on a temperature parameter associated with abeamformed radio frequency (RF) signal; and RF circuitry comprising: anantenna array comprising a plurality of antenna elements; phase delaycircuitry configured to generate the beamformed RF signal to the antennaarray; and codebook circuitry comprising an active codebook configuredto program the phase delay circuitry, wherein the active codebook isselected from the codebook database in a calibration process comprising:loading a first codebook in the codebook circuitry; programming thephase delay circuitry using a first entry of the first codebook;transmitting the beamformed RF signal using the antenna array; measuringa first power at a first direction; transmitting a plurality ofindividual RF signals and measuring a plurality of individual RF signalpowers at the first direction, wherein each individual RF signal isgenerated by a single antenna element of the antenna array; calculatinga first upper bound by adding the plurality of individual RF signalpowers; determining a first power difference between the first power andthe first upper bound; and selecting the active codebook from thecodebook database based, in part, on the first power difference.
 11. Theelectronic device of claim 10, wherein the calibration process isperformed in a test chamber that is configured to measure RF signalsonly at the first direction.
 12. The electronic device of claim 10,wherein the first entry of the first codebook is selected based at leastin part on the first direction.
 13. The electronic device of claim 10,wherein each respective codebook of the plurality of codebooks comprisesat least one respective power difference associated with the firstdirection, and wherein selecting the active codebook from the codebookdatabase comprises minimizing a difference between the first powerdifference and the respective power difference of the active codebook.14. The electronic device of claim 13, wherein the calibration processcomprises a tolerance margin, and wherein the calibration processcomprises comparing the difference between the first power differenceand the respective power difference of the active codebook anddeterminging whether the difference is smaller than the tolerancemargin.
 15. The electronic device of claim 10, wherein the electronicdevice comprises a laptop, a mobile phone, a tablet, a watch, or anycombination thereof.
 16. The electronic device of claim 10, wherein theRF circuitry is configured to operate using 450 MHz band, a 800 MHzband, a 850 MHz band, a 900 MHz band, a 1.8 GHz band, a 1.9 GHz band, a2.4 GHz band, a 3.65 GHz band, a 4.9 GHz band, a 5 GHz band, a 36-40 GHzband, a 71-76 GHz band, a 81-86 GHz band, or a 92-95 GHz band or anycombination thereof.
 17. The electronic device of claim 10, wherein thecalibration process comprises determining a measurement associated withthe temperature parameter of the beamformed RF signal, and whereinselecting the active codebook is based at least in part on themeasurement associated with the temperature parameter.
 18. A method forcalibration of a wireless network interface of an electronic devicecomprising an antenna array, comprising: selecting, in the electronicdevice, a first entry of a codebook, wherein the codebook is associatedwith a power difference corresponding to a group of similar electronicdevices, wherein the first entry is associated with a first direction,wherein the codebook is indexed based on a temperature parameter;programming a phase delay circuitry of the wireless network interfacebased on the first entry; transmitting a beamformed radiofrequency (RF)signal using the wireless network interface; measuring a plurality ofpower measurements of the beamformed RF signal, wherein each respectivepower measurement is associated with a respective direction; determininga maximum power measurement of the plurality of power measurements,wherein the maximum power measurement is associated with a seconddirection; modifying the first entry of the codebook based on ameasurement associated with the temperature parameter, the maximum powermeasurement, and the second direction to generate an enhanced codebook;and generating a codebook database that comprises the enhanced codebook.19. The method of claim 18, comprising calculating the power differencebetween an upper bound for power at the second direction and the maximumpower measurement by: for each respective antenna element of the antennaarray transmitting a respective individual RF signal and measuring arespective power of the respective individual RF signal at the seconddirection; adding all the powers of the individual RF signals to obtainthe power upper bound; calculating the power difference between thepower upper bound and the maximum power measurement; and modifying thefirst entry of the codebook by adding the power difference between thepower upper bound and the maximum power measurement.
 20. The method ofclaim 19, comprising: loading the codebook database in a secondelectronic device, wherein the second electronic device comprises asecond wireless network interface similar to the wireless networkinterface; determining a second measurement associated with thetemperature parameter of a second antenna array of the second wirelessnetwork interface; and selecting from the codebook database a secondcodebook associated with the second measurement associated with thetemperature parameter.